index.ts ➔ run   A
last analyzed

Complexity

Conditions 3

Size

Total Lines 30
Code Lines 27

Duplication

Lines 0
Ratio 0 %

Importance

Changes 0
Metric Value
eloc 27
dl 0
loc 30
c 0
b 0
f 0
rs 9.232
cc 3
1
/* eslint-disable promise/prefer-await-to-callbacks */
2
import path from 'path';
3
import Mocha from 'mocha';
4
import { glob } from 'glob';
5
6
export async function run(): Promise<void> {
7
    // Create the mocha test
8
    const mocha = new Mocha({
9
        ui    : 'tdd',
10
        color : true
11
    });
12
13
    const testsRoot = path.resolve(__dirname, '..');
14
15
    const files = await glob('**/**.test.js', { cwd: testsRoot });
16
17
    console.log('files:', files);
18
19
    return new Promise((c, e) => {
20
        // Add files to the test suite
21
        files.forEach(f => mocha.addFile(path.resolve(testsRoot, f)));
22
23
        try {
24
            // Run the mocha test
25
            mocha.run(failures => {
26
                if (failures > 0) {
27
                    e(new Error(`${failures} tests failed.`));
28
                } else {
29
                    c();
30
                }
31
            });
32
        } catch (error) {
33
            console.error(error);
34
            e(error);
35
        }
36
    });
37
}
38